package login;

import java.io.*;
import java.net.*;

/*3)、使用TCP网络编程完成用户登录功能：客户端输入用户名和密码，向服务器发出登录请求；
服务器接收数据并进行判断，如果用户名和密码均是bjsxt，则登录成功，否则登录失败，返回相应响应信息；
客户端接收响应信息并输出登录结果。
(1) 用户User类已提供构造方法 public User(String username,String password)。
(2) 客户端采用ObjectOutputStream发送封装了用户名和密码的User对象。
*/
public class ServerIntface {
    public static void main(String[] args) {
        ServerSocket serverSocket = null;
        ObjectInputStream ois = null;
        PrintWriter out = null;
        Socket socket = null;
        String result = null;
        try {
            serverSocket = new ServerSocket(6248);
            socket = serverSocket.accept();//不要忘了阻塞方法
            ois = new ObjectInputStream(socket.getInputStream());
            User user = (User)ois.readObject();
            if (user.getName().equals(user.getPassword()) && user.getName().equals("bjsxt")) {
                result = "登录成功！";
            }else{
                result = "登录失败！";
            }
            out = new PrintWriter(socket.getOutputStream(),true);
            out.println(result);
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }finally {
            if (out != null) {
                out.close();
                out = null;
            }
            if (ois != null) {
                try {
                    ois.close();
                    ois = null;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}
